﻿using Domain.Model.Domain_MoBan_Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Domain.Interface
{
    public interface IKeShi : IDependency
    {


        #region Get

        #region KeShiGet
        string GetAllKeShiList(int pageIndex, int pageSize, int pageTotal);
        string GetKeShiInfo(int ksid);
        string GetKeShiRenShu(int ksid);

        #endregion
        #region ZhiWuGet
        string GetKeShiNeiZhiWu(int ksid);
        string GetKeShiZhiWusOption(int ksid);
        /// <summary>
        /// 获取一级职务
        /// </summary>
        /// <param name="ksid"></param>
        /// <returns></returns>
        string GetKeShiZhiWuOneLevel(int ksid);
        #endregion
        #endregion

        #region Save
        #region KeShiSave
        /// <summary>
        /// 添加科室
        /// </summary>
        /// <param name="ksmc"></param>
        void SaveKeShi(string ksmc);
        /// <summary>
        /// 更新科室
        /// </summary>
        /// <param name="ksid"></param>
        /// <param name="ksmc"></param>
        void SaveKeShi(int ksid, string ksmc);
        #endregion
        #region ZhiWuSave

        void SaveZhiWu(int ksid, string zwmc, int? pid, int gzjhid, int jxkhid);
        void SaveZhiWu(int ksid, int zwid, string zwmc, int? pid, int gzjhid, int jxkhid);
        #endregion
        #endregion

        #region Del

        void DelKeShiById(int id);
        

        #endregion

        #region 权限

        string GetQuanXians();
        /// <summary>
        /// 
        /// </summary>
        /// <param name="zwid"></param>
        /// <param name="ptmc">权限名称，多个用“|”隔开</param>
        void SaveQuanXian(int ksid,int zwid, string ptmc);


        #endregion


        #region 职务新版
        string SaveZhiWu(string zwmc, int pid);
        string UpdateZhiWu(int zwid, string zwmc, int pid);
        string GetZhiWus();
        void DelZhiWuById(int id);
        /// <summary>
        /// 职务关联科室
        /// </summary>
        /// <param name="ksid">科室Id</param>
        /// <param name="zwid">职务Id</param>
        void ZhiWuRelationKeShi(int ksid, int zwid);

        /// <summary>
        /// 获取科室内职务
        /// </summary>
        /// <param name="ksid"></param>
        /// <returns></returns>
        string KeShiZhiWu(int ksid);
        /// <summary>
        /// 职务关联考核表
        /// </summary>
        /// <param name="ksid"></param>
        /// <param name="zwid"></param>
        /// <param name="jzgid"></param>
        /// <param name="khbid"></param>
        void KaoHeBiaoRelationZhiWu(int ksid, int zwid, int khbid);

        /// <summary>
        /// 删除职务关联考核表
        /// </summary>
        /// <param name="ksid"></param>
        /// <param name="zwid"></param>
        /// <param name="mbid"></param>
        void DelKaoHeBiaoRelationZhiWu(int ksid, int zwid, int mbid);
        /// <summary>
        /// 删除科室职务关联
        /// </summary>
        /// <param name="ksid"></param>
        /// <param name="zwid"></param>
        void DelKeShiZhiWu(int ksid, int zwid);

        /// <summary>
        /// 职务关联权限
        /// </summary>
        /// <param name="ksid"></param>
        /// <param name="zwid"></param>
        /// <param name="str"></param>
        void ZhiWuRelationPower(int ksid, int zwid, string str);
        List<Domain_MoBan_Main> GetZhiWuKaoHeBiao(int ksid, int zwid);
        #endregion
    }
}
